//
//  ZHTJSearchManager.h
//  ZHTJFaceDemo
//
//  Created by thinkjoy on 2017/1/9.
//  Copyright © 2017年 杜瑞胜. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "ZHTJFaceSetModel.h"
#import "ZHTJFaceError.h"

@interface ZHTJSearchManager : NSObject
#pragma mark    人脸检索
/**
 使用faceSetID和FaceID,在faceSet中检索与FaceID对应人脸最相似的人脸

 @param faceSetID faceSet的ID
 @param faceID 有效的FaceID
 @param topCount 当检测到有多个结果时，确定返回的个数；默认为1；
 @param completionHandler 回调
 */
+ (void)tj_SearchFaceWithFaceSetID:(NSString *)faceSetID faceID:(NSString *)faceID topCount:(NSUInteger)topCount completionHandler:(void (^)(ZHTJFaceSearchModel * faceSearchMD, ZHTJFaceError *  error))completionHandler;

/**
 使用faceSetName和FaceID检索,在faceSet中检索与FaceID对应人脸最相似的人脸
 
 @param faceSetName faceSet的名称
 @param faceID 有效的FaceID
 @param topCount 当检测到有多个结果时，确定返回的个数；默认为1；
 @param completionHandler 回调
 */
+ (void)tj_SearchFaceWithFaceSetName:(NSString *)faceSetName faceID:(NSString *)faceID topCount:(NSUInteger)topCount completionHandler:(void (^)(ZHTJFaceSearchModel * faceSearchMD, ZHTJFaceError *  error))completionHandler;

/**
 使用faceSetName和img检索,在faceSet中检索与图片中识别率最高人脸最相似的人脸;
 
 @param faceSetName faceSet的名称
 @param img 分辨率小于1920*1920，且至少有一张人脸在图片上；
 @param topCount 当检测到有多个结果时，确定返回的个数；默认为1；
 @param completionHandler 回调
 */
+ (void)tj_SearchFaceWithFaceSetName:(NSString *)faceSetName img:(UIImage *)img topCount:(NSUInteger)topCount completionHandler:(void (^)(ZHTJFaceSearchModel * faceSearchMD, ZHTJFaceError *  error))completionHandler;

/**
 使用faceSetID和img检索,在faceSet中检索与图片中识别率最高人脸最相似的人脸;
 
 @param faceSetID faceSet的名称
 @param img 分辨率小于1920*1920，且至少有一张人脸在图片上；
 @param topCount 当检测到有多个结果时，确定返回的个数；默认为1；
 @param completionHandler 回调
 */
+ (void)tj_SearchFaceWithFaceSetID:(NSString *)faceSetID img:(UIImage *)img topCount:(NSUInteger)topCount completionHandler:(void (^)(ZHTJFaceSearchModel * faceSearchMD, ZHTJFaceError *  error))completionHandler;


#pragma mark    Refresh API
/**
 刷新FaceSet的缓存;如果在使用检索功能前有改动过FaceSet，需要首先刷新缓存在进行检索操作;

 @param faceSetID faceSet的ID
 @param completionHandler 回调
 */
+ (void)tj_RefreshWithFaceSetID:(NSString *)faceSetID completionHandler:(void (^)(NSInteger resoutCode, ZHTJFaceError *  error))completionHandler;

@end
